From f3cbd9cb932dd59797ceb6259fbb49dc709b1050 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Wed, 21 Jun 2006 11:17:08 -0600 Subject: [PATCH] [IA64] per cpu vhpt stats dump_vhpt_stats: disp usage per cpu. Signed-off-by: Tristan Gingold --- xen/arch/ia64/xen/vhpt.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/xen/arch/ia64/xen/vhpt.c b/xen/arch/ia64/xen/vhpt.c index 0a653d173a..3fe48facf7 100644 --- a/xen/arch/ia64/xen/vhpt.c +++ b/xen/arch/ia64/xen/vhpt.c @@ -266,16 +266,21 @@ void zero_vhpt_stats(void) int dump_vhpt_stats(char *buf) { - int i; + int i, cpu; char *s = buf; - struct vhpt_lf_entry *v = (void *)VHPT_ADDR; - unsigned long vhpt_valid = 0, vhpt_chains = 0; - for (i = 0; i < VHPT_NUM_ENTRIES; i++, v++) { - if (!(v->ti_tag & INVALID_TI_TAG)) vhpt_valid++; - if (v->CChain) vhpt_chains++; + s += sprintf(s,"VHPT usage (%ld entries):\n", + (unsigned long) VHPT_NUM_ENTRIES); + + for_each_present_cpu (cpu) { + struct vhpt_lf_entry *v = __va(per_cpu(vhpt_paddr, cpu)); + unsigned long vhpt_valid = 0; + + for (i = 0; i < VHPT_NUM_ENTRIES; i++, v++) + if (!(v->ti_tag & INVALID_TI_TAG)) + vhpt_valid++; + s += sprintf(s," cpu %d: %ld\n", cpu, vhpt_valid); } - s += sprintf(s,"VHPT usage: %ld/%ld (%ld collision chains)\n", - vhpt_valid, (unsigned long) VHPT_NUM_ENTRIES, vhpt_chains); + return s - buf; } -- 2.30.2